Java Parallel Streams 关闭线程
全部标签 我正在开发一个多线程应用程序来连接到外部服务器-每个服务器都在单独的线程上-并且在有输入之前将被阻塞。其中每一个都扩展了Thread类。为了便于解释,我们称这些为“连接线程”。所有这些连接线程都存储在并发HashMap中。然后,我允许调用RESTfulWeb服务方法来取消任何线程。(我使用的是Grizzly/Jersey,所以每次调用都是一个单独的线程。)我检索特定的连接线程(从hashmap)并调用它的interrupt()方法。那么,问题来了,在连接线程中,我如何捕获InterruptedException?(当连接线程被外部RESTful命令停止时,我想做一些事情。)
接下来的问题应该是观察屏幕、记录一个事件(测量文本框变为绿色)并记录导致它发生的所有事件,从而制作出导致它发生的事件的“电影”。不幸的是,需要记录整个屏幕。到目前为止,我已经完成了认可的部分。但是我每秒几乎没有两帧。我想要大约25到30fps。我的想法是在两个单独的线程中进行写作和阅读。因为写入事件很少见并且可以在后台运行,所以录制事件可以占用更多时间并运行得更快。不幸的是,整个事情似乎太慢了。我希望能够在事件发生前的10到20秒将屏幕写入磁盘。编辑:如果可能的话,我想尽可能保持平台独立。编辑2:Xuggler似乎有一个独立于平台的jar文件。不幸的是,我真的不知道如何将它用于我的目的
我的主线程创建了一个新线程当新线程调用System.exit(-1)时,我的主线程被关闭。如何处理退出代码并保持主线程Activity?附言。新线程会调用其他.jar文件中的一些方法,所以我不能修改它。 最佳答案 你不能。终止当前运行的Java虚拟机。该参数用作状态代码;按照惯例,非零状态代码表示异常终止。那是javadoc。因此该方法将终止整个JVM。不仅仅是线程.... 关于java-Java线程中的System.exit,我们在StackOverflow上找到一个类似的问题:
这个问题在这里已经有了答案:InJava,howdoyoudetermineifathreadisrunning?(10个答案)关闭9年前。我有一个扩展Thread的类。我会在某个时候开始讨论。一段时间后我需要检查该线程是否已经启动?这样我就可以在那个特定点启动线程。我的线程类将是,publicclassBasicChatListenerextendsThread{publicvoidrun(){}}我需要知道BasicChatListener类的特定线程是否正在运行?因为我的应用程序中已经有多个线程在运行。我们的堆栈成员将如何帮助我。
创建一个每15分钟运行一次以从数据库中获取数据的后台线程的最佳方法是什么?下面是我拥有的代码,我猜它可以在生产环境中正常工作,但是还有比我拥有的更好的方法或我应该注意的事情吗?privatestaticvoidcheckDatabaseEveryXMinutes(){newThread(){publicvoidrun(){while(true){try{Thread.sleep(checkingAfterEveryXMinutes);getDataFromDatabase();}catch(InterruptedExceptionex){//loghere}catch(Exceptio
这个问题在这里已经有了答案:CananyoneexplainmeoverConcurrentModificationException?(1个回答)关闭9年前。我有2HashMap对象名称是positiveCoOrdinateandnegativeCoOrdinates.我正在检查PositiveCoOrdinates条件如下,满足则对应点加入negativeCoOrdinates并从positiveCoOrdinates中删除.HashMappositiveCoOrdinates=duelList.get(1);HashMapnegativecoOrdinates=duelList.
Java程序员可以手动创建守护线程吗?怎么样? 最佳答案 java.lang.Thread.setDaemon(boolean)请注意,如果未明确设置,则此属性是从创建新线程的线程“继承”的。 关于java-如何创建守护线程?,我们在StackOverflow上找到一个类似的问题: https://stackoverflow.com/questions/1276865/
在Java中,当您关闭套接字时,它不再做任何事情,但它实际上会在超时后关闭TCP连接。我需要使用数以千计的套接字并且我希望它们在我关闭它们之后立即关闭,而不是在超时期限之后,这浪费了我的时间和资源。我能做什么? 最佳答案 我发现通过使用socket.setReuseAddress(boolean),您可以告诉JVM重用该端口,即使它处于超时期限也是如此。 关于java-如何绕过超时时间立即关闭套接字?,我们在StackOverflow上找到一个类似的问题: h
我正在试验Java中的并行化算法。我从合并排序开始,并在此question中发布了我的尝试.我修改后的尝试是在下面的代码中,我现在尝试在其中并行化快速排序。我的多线程实现或解决此问题的方法是否有新手错误?如果不是,我难道不应该期望双核上的顺序算法和并行算法之间的速度提高超过32%(请参阅底部的计时)?这里是多线程算法:publicclassThreadedQuickextendsThread{finalintMAX_THREADS=Runtime.getRuntime().availableProcessors();CountDownLatchdoneSignal;staticintn
在我的应用程序中,我有一些native代码的包装器,它通过JNI桥调用。此native代码需要在单独的线程中执行(并行处理)。然而,问题是代码有时会“挂起”,因此需要“强制”终止线程。不幸的是,我还没有找到任何“微妙”的方法来这样做:一般建议是告诉线程中的代码优雅地退出,但我不能用这个native代码(上面的第3方代码)来做到这一点。我使用JavaConcurrentAPI进行任务提交:FutureprocessFuture=taskExecutor.submit(callable);try{result=processFuture.get(this.executionTimeout,